// lib/providers/settings_viewmodel.dart
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:riverpod_demo/providers/home_list_provider.dart';
import '../data/models/user_model.dart';
import 'user_provider.dart';

// 定义 ViewModel 管理的状态类
class SettingsState {
  final String currentName;
  SettingsState({required this.currentName});
}

// ViewModel 类 (Notifier)
class SettingsViewModel extends Notifier<SettingsState> {
  @override
  SettingsState build() {
    // ViewModel 从 Model(这里是另一个Provider) 获取初始数据
    final initialName = ref.read(userProvider).name;
    return SettingsState(currentName: initialName);
  }

  // 提供给 View 调用的公共方法
  void updateName(String newName) {
    if (newName.isEmpty) {
      // 在这里处理业务逻辑，比如验证
      return;
    }
    // 调用 Model (userProvider) 来更新全局状态
    ref.read(userProvider.notifier).update((state) {
      return UserData(name: newName, email: state.email);
    });
    // 更新自己的状态，让监听自己的 View 知道
    state = SettingsState(currentName: newName);
  }
}

// 创建 ViewModel 的 Provider
final settingsViewModelProvider = NotifierProvider<SettingsViewModel, SettingsState>(SettingsViewModel.new);
